In a memory system, data signals received from memory devices are sampled by a memory controller using data strobe signals. The data strobe signals may only be active for during a small window of time. The location of the active window can be affected by signal propagation delay, temperature and voltage changes. If the window is not properly estimated, it can result in incorrect data being read by the memory controller.